/// <reference path="jquery.js" />
/// <reference path="../lang/1.js" />
/// <reference path="Utils.js" />

/* 验证库 */
/* 工号 */
var ValidataLogin_Id = /^\d{3,8}$/;
/* 登陆用户，密码 */
var ValidataUserLoginName = /^[a-zA-Z0-9_]{3,18}$/;
/* 用户普通密码 */
var ValidataUserLoginPassowrd = /^[a-zA-Z0-9_]{8,25}$/;
/* 1，不能全部是数字 2，不能全部是字母3，必须是数字或字母 只要能同时满足上面3个要求就可以了 */
var ValidateUserLoginPassword_Calss = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,25}$/;
/* 维吾尔用户昵称 */
var ValidateUyghurName = /[\u0600-\u06FF\s]{3,80}/;
/* 邮箱地址 */
var ValidateEmail = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
/* 身份证 */
var ValidateUserId = /(^\d{15}$)|(^\d{17}(\d|X|x)$)/;
/* 手机号码验证 */
var ValidatePhone = /^1[3|4|5|8][0-9]\d{4,8}$/;
/* 时间验证码 */
var ValidateDateTime = /^\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}$/;
/* 日期的验证码 */
var ValidateDate = /((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$))/;
/* 钱，带2位小数 */
var ValidateMoney = /^\d{1,7}.\d{2}$/;
/*Url地址验证*/
var ValidateUrl = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\:+!]*([^<>])*$/;
/* 验证IP [只限IP4] */
var ValidateIp = /^((\d{1,3}|[*]).){3}(\d{1,3}|[*])$/;
/* 严重人民币 */
var ValidateMoneyInt = /^\d{1,15}$/


/* 验证码图值更换 */
function ImgCodeReplace() {
    /* 图片验证码的自动生成的验证码图片ID默认ImgCode */
    $("#ImgCode").attr("src", "../ajax/VerificationImgCode.ashx?td=" + Math.random() * 1000);
}


function ImgCodeShow() {
    $(document).ready(function () {
        /* 验证码点击时进行更换 */
        $("#ImgCode").click(function () {
            ImgCodeReplace();
        })
    })
}

/* 验证并调用相关函数错误提示,error_function()，规则不通过时执行的函数，error_text：错误提示文本，right_function()规则通过的时候执行的函数 */
function ValidateRegFull(Id, Reg, error_function, right_function) {
    str = $("#" + Id).val();
    if (!Reg.test(str)) {
        if (error_function)
            error_function()
        HideErrorForReg(Id, Reg)
        return false;
    }
    if (right_function)
        right_function()
    /* 如果正则表达式通过，执行移除错误样式 */
    BindVerifiedEffect(Id)
    return true;
}




/* 验证最小和最大长度 */
function ValidateLength(Id, minInt, maxInt) {
    if ($("#" + Id).val().length < minInt || $("#" + Id).val().length > maxInt) {
        
        ShowErrorForLength(Id, minInt, maxInt);
        /* 验证信息被修改后的合法度 */
        HideErrorForLength(Id, minInt, maxInt)
        return false;
    }
    else {
        BindVerifiedEffect(Id)
        return true;
    }
}



/* 验证整数值大小 */
function ValidateMaxMinValue(Id, MinValue, MaxValue) {
    var values = $("#" + Id).val();
    if (values < MinValue || values > MaxValue) {
        ShowErrorForMaxMinValue(Id, MinValue, MaxValue);
        HideErrorForMaxMinValue(Id, MinValue, MaxValue)
        return false;
    }
    BindVerifiedEffect(Id)
    return true;
}
/* 验证正则表达式 */
function ValidateReg(Id, Reg) {
    return ValidateRegFull(Id, Reg, function () { ShowError_Full(Id, Lang_Error); }, null);
}



/* 验证密码是否标准 */
function ValidatePasswordClass(select_id) {
    return ValidateRegFull(select_id, ValidateUserLoginPassword_Calss, function () { ShowError_Full(select_id, Show_Erorr_Text(-18)); }, null);
}

/* 验证密码的一致性 */
function ValidateConfirm(Id) {
    str = $("#" + Id).val();
    Confirm_str = $("#" + Id + "_Confirm").val();
    if (str != Confirm_str) {
        ShowError_Full(Id + "_Confirm", Lang_Error20);
        ShowError_Full(Id, Lang_Error20);
        return false;
    }
    BindVerifiedEffect(Id + "_Confirm")
    return true;
}
/* 验证规则,是否已选择有效数据 */
function ValidateSelect(Id) {
    str = $("#" + Id).val();
    if (str == 0) {
        /* 对标签绑定颜色 */
        ShowError_Full(Id, Lang_Error7);
        /* 如果修改过程中合法了，进行核对 */
        HideErrorForSelect(Id)
        return false;
    }
    BindVerifiedEffect(Id)
    return true;
}
/* 验证通过效果，移除错误信息，绑定通过效果 */
function BindVerifiedEffect(Id) {
    $("#" + Id).removeClass("error");
    $("#Validate-" + Id).fadeOut();
}


/* 显示错误提示，功能全,select_id：元素ID，error_text：错误提示文本 */
function ShowError_Full(select_id, error_text) {
    /* 绑定显示提示 code元素 */
    $("#Validate-" + select_id).html(error_text);
    $("#Validate-" + select_id).fadeIn();
    /* 绑定新样式 */
    BindErrorEffect(select_id)
}

function ShowErrorForLength(Id, minlen, maxlength) {
    /* 绑定显示提示 code元素 */
    $("#Validate-" + Id).html(Lang_Error8.format(minlen, maxlength));
    /* 绑定新样式 */
    BindErrorEffect(Id);
}
function ShowErrorForMaxMinValue(Id, MinValue, MaxValue) {
    /* 绑定显示提示 code元素 */
    $("#Validate-" + Id).html(Lang_Error9.format(MinValue, MaxValue));
    /* 绑定新样式 */
    BindErrorEffect(Id);
}

function BindErrorEffect(Id) {
    /* 清理样式缓存 */
    $("#Validate-" + Id).removeClass("ok");
    $("#" + Id).addClass("error");
    $("#Validate-" + Id).addClass("error");
    $("#" + Id).focus();
}
function HideErrorForLength(Id, MinLen, MaxLen) {
    $("#" + Id).keypress(function () {

        if ($("#" + Id).val().length >= MinLen - 1 && $("#" + Id).val().length <= MaxLen) {
            BindHideError(Id);
        }
    })
}
function HideErrorForMaxMinValue(Id, MinValue, MaxValue) {
    $("#" + Id).keypress(function () {
        var value = $("#" + Id).val();
        if (value >= MinValue && value <= MaxValue) {
            BindHideError(Id);
        }
    })
}
function HideErrorForReg(Id, Reg) {
    $("#" + Id).keyup(function () {
        var str = $("#" + Id).val();
        if (Reg.test(str)) {
            BindHideError(Id);
        }
    })
}
function HideErrorForConfirm(Id) {
    $("#" + Id + "_Confirm").blur(function () {
        str = $("#" + Id).val();
        Confirm_str = $("#" + Id + "_Confirm").val();
        if (str == Confirm_str) {
            BindHideError(Id + "_Confirm")
        }
    });
}
/* SELECT 重选后，如果新选择合理，移除错误样式 */
function HideErrorForSelect(Id) {
    $("#" + Id).change(function () {
        str = $("#" + Id).val();
        if (str != "0") {
            BindHideError(Id);
        }
    })
}

/* 隐藏错误提示 */
function BindHideError(Id) {
    $("#" + Id).removeClass("error");
    $("#Validate-" + Id).removeClass("error");
    $("#Validate-" + Id).fadeOut();

}
/* 长度提示函数 */
function ShowLimitLength(Max_length, Item_Id) {
    var Show_Test = "";
    var New_Length = Max_length;
    /* 用键盘输入时 */
    $("#" + Item_Id).keyup(function () {
        if ($(this).val().length > Max_length)
            $(this).val($(this).val().substring(0, Max_length));
        else
            $("#" + Item_Id + "_Code").html(Max_length - ($(this).val().length));
    });
    /* 粘贴时 */
    $("#" + Item_Id).blur(function () {
        if ($(this).val().length > Max_length)
            $(this).val($(this).val().substring(0, Max_length));
        else
            $("#" + Item_Id + "_Code").html(Max_length - ($(this).val().length));
    });
}
/* 强制控制 */
function ShowLimitMaxMinValue(select, Min, Max) {
    $(select).blur(function () {
        if ($(select).val() > Max)
            $(select).val(Max);
        else if ($(select).val() < Min)
            $(select).val(Min);
    });
}
/* Focus */
function ErrorFocus(selecter) {
    $(selecter).addClass("error");
    $(selecter).focus();
}



